1. Field of the Invention
The present invention generally relates to random number generators which are frequently used in encryption systems. More particularly, the present invention pertains to a method and apparatus for ensuring a specified degree of randomness of binary data generated from a zener diode random noise source.
2. Description of the Prior Art
Recently there has been an increased demand for digitally-encrypted voice communications over landline and radio frequency channels. These voice security systems utilize random numbers to generate a cryptovariable or "session key" for a DES (digital encryption standard) or similar device. The random numbers can also be tested for primality, and used to derive a modulus for "public key" encryption systems used in a stand-alone mode or as part of a DES system.
Strictly speaking, it is possible for a cryptanalyst to decode any "deterministic" sequence, since as soon as he knows a complete cycle, the cryptanalyst can determine the entire sequence. No periodic sequence is truly random. For example, the standard pseudo-random number generator, consisting of shift registers and exclusive-OR gates, produces deterministic sequences which will eventually repeat. To ensure complete voice security, a random number generator must use a truly random or "nondeterministic" generation technique. Therefore, if the cryptanalyst intercepts part of the encrypted sequence, he will have no information on how to predict the remainder of the sequence.
A simple scheme to develop truly random numbers having non-deterministic statistical properties is the use of zener diode noise. If a zener diode is biased at the knee of the avalanche breakdown region of its current-voltage characteristic curve, it will exhibit a noisy behavior. The diode noise is then amplified, limited, and sampled to produce a random binary data stream derived from the random noise voltage. However, in practice, this scheme often produces random numbers having a statistical distribution exhibiting a degree of randomness which is skewed towards a majority of ONES or ZEROS, as determined by the zener diode biasing point. Since no two zener diodes have identical characteristic curves, each diode's bias voltage must be individually adjusted to find the point of maximum analog noise voltage. Furthermore, the bias voltage may need repeated readjustments due to changing environmental conditions, i.e., temperature and voltage, as well as component aging. Still further, the zener diode noise output is not Gaussian, and may have a mean value different from its median value. This anomaly complicates a limiter design, since the known technique of eliminating the average DC component by AC coupling the zener diode noise output will not result in a balanced data stream of ONES and ZEROS. Thus, an additional limiter balancing adjustment is often required in order to find the limiter switching threshold which provides the desired random ONE/ZERO mix.
A need, therefore, exists to provide a method and means for controlling the zener bias point and limiter threshold such that the random number output from the generator meets a given criteria for randomness.